package org.UserHouse.Dao;

import org.UserHouse.entity.User;

import java.util.Date;
import java.util.List;

/**
 * @author bin
 * @date 2024-11-26
 */
public interface UserDao {
    /**
     * 查询所有用户
     *
     * @return 返回一个包含所有用户的列表。如果没有用户，返回空列表。
     */
    List<User> selectUser();

    /**
     * 根据用户名查询用户信息
     *
     * @param Uname 用户的姓名或用户名
     * @return 如果找到对应的用户，返回该用户的对象；如果没有找到，返回 null。
     */
    User selectByUname(String Uname);

    /**
     * 添加新用户
     *
     * @param user 用户对象，包含新用户的各项信息（如用户名、密码等）
     * @return 返回影响的行数（通常是 1 表示成功，0 表示失败）
     */
    int insertUser(User user);

    /**
     * 修改用户信息
     *
     * @param user 用户对象，包含需要更新的用户信息（如用户名、密码等）
     * @return 返回影响的行数（通常是 1 表示成功，0 表示没有更新任何内容）
     */
    int UpdateUser(User user);

    int deleteUser(int Uid);


    /**
     * 分页 + 条件查询
     * @param user
     * @param page
     * @param limit
     * @return
     */
    List<User> selectPage(User user, int page, int limit);

    /**
     * 配合 （分页 + 条件查询），获取总记录数
     * @param user
     * @return
     */
    Long selectPageCount(User user);

    int forgetpassword(User user);

}
